﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Objects;
using System.Data;

namespace appServices
{
    public class Database
    {
        // Instance de la classe en static (Singleton)
        private static Database instance;
        // Objet permettant l'accès aux tables mappées
        private AlfinorekouEntities model;

        // Constructeur en private pour respecter le principe du Singleton
        private Database()
        {
            model = new AlfinorekouEntities();
        }

        // Accesseur statique pour récupérer l'instance de DataBase
        public static Database getInstance()
        {
            if (instance == null)
                instance = new Database();

            return instance;
        }

        // Accesseur du contexte de la base de données mappée
        public AlfinorekouEntities getModel()
        {
            return model;
        }

        public List<Object> check(IQueryable<Object> result)
        {
            try
            {
                if (result != null && result.Count() > 0)
                    return new List<Object>(result);
                else return new List<Object>(); 
            }
            catch(Exception e)
            {
                Console.WriteLine(e.Message);
                return new List<Object>();
            }
        }

        public Object check(Object result)
        {
            try
            {
                if (result != null) return result;
                else return new Object();
            }
            catch(Exception e)
            {
                Console.WriteLine(e.Message);
                return new Object();
            }            
        }
    }
}